const db = wx.cloud.database()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    swiperHeight: 400,
    swiperUrl: [
      '../../images/swiper/OIP-C.jpg',
      '../../images/swiper/OIP-C.jpg',
      '../../images/swiper/OIP-C.jpg',
      '../../images/swiper/OIP-C.jpg',
      '../../images/swiper/OIP-C.jpg',
      '../../images/swiper/OIP-C.jpg',
    ],
    swiperIndex: 0, //这里不写第一次启动展示的时候会有问题
    goodsCategoryList: [],
    goodsItemList: [],
    isLoading:true
  },

  bindchange(e) {
    this.setData({
      swiperIndex: e.detail.current
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

    this.getGoodsList()

  },

  async getGoodsList() {
    let {
      result: {
        res: {
          data
        }
      }
    } = await wx.cloud.callFunction({
      name: 'getGoodsCategoryList'
    })
    let goodsCategoryList = data
    let goodsItemList = []
    for (let i = 0; i < goodsCategoryList.length; i++) {
      goodsItemList = goodsItemList.concat(goodsCategoryList[i].list)
    }
    this.setData({
      goodsCategoryList,
      goodsItemList,
      isLoading:false
    })
  },

  // 添加购物车
  addCart(e) {
    let {
      currentTarget: {
        id
      }
    } = e
    let {
      goodsItemList
    } = this.data
    // 循环遍历商品列表，如果事件源id和商品列表中某个商品的id相同，则是该商品
    for (let i = 0; i < goodsItemList.length; i++) {
      if (goodsItemList[i].id === id) {
        wx.showToast({
          title: '添加成功!',
        })
        // 如果找到该元素，给goodsItemList数组添加count属性，值为1，用于记录添加到购物车的数量
        goodsItemList[i].count = 1
        goodsItemList[i].isSelect = true
        // 获取购物车的缓存数组，如果没有，则赋予一个空数组
        let cart = wx.getStorageSync('cart') || []
        console.log(cart)
        // 如果购物车里面有数据
        if (cart.length > 0) {
          for (let j in cart) {
            // 判断购物车内item的id和事件传过来的id是否相等
            if (cart[j].id === id) {
              // 相等的话，给count加1
              cart[j].count = cart[j].count + 1
              console.log(cart[j])
              // 最后，把购物车数据，存放入缓存（此处不用再给购物车数组push元素进去，因为这个是购物车有的，直接更新当前数组即可）
              try {
                wx.setStorageSync('cart', cart)
              } catch (e) {
                console.log(e)
              }
              // 返回（在if内使用return，跳出循环节约运算，节约性能）
              return;
            }
          }
          // 遍历完购物车后没有对应的item项，把goodsItemList的当前项放入cart中
          cart.push(goodsItemList[i])
        }
        // 购物车没有数据，把item项push放入当前数据（第一次存放时）
        else {
          cart.push(goodsItemList[i])
        }
        // 最后，把购物车数据，存放入缓存
        try {
          wx.setStorageSync('cart', cart)
          return
        } catch (e) {
          console.log(e)
        }

      }
    }

  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getGoodsList()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})